你累死累活做业务,绩效还不怎么样,我只能帮你到这了……
业务前端的困境
▐ 业务前端“好忙”
用户侧产品往往需要快速上线,大部分需求都需要倒排工期,开发时间尤其紧张
对业务不熟悉,在项目需求已确定的时候才去参加视觉评审,没有办法判断需求背后的业务逻辑跟业务大节奏是否匹配、需求本身是否能够达成业务目标、有没有更好的实现方式,只能接下需求,然后排期
维护成本高,每天还要忙于解决各种线上问题,比如这里样式有点问题,那里怎么没有显示……各种琐碎问题让你过的非常“充实”
需求响应速度较慢,比如业务的技术栈较老,或者定制逻辑过多,边写代码还要边查文档,查不到可能还要查源码,效率大幅降低。又或者跟别的业务技术体系不同,难以复用和沉淀,如果要用,可能还要重写一遍……
▐ 业务前端是“资源”?
▐ 业务前端想突破
这里技术体系太老了,为了进一步提升开发效率,我们想要搞技术重构
前后端联调有点费劲,我们想搞个联调数据中台,提升联调效率
那里展现速度太慢了,我们要搞性能优化
……
为什么要做?(有什么业务价值?有什么技术价值?)
为什么是现在做?
为什么是你做?
ROI(投入产出比)怎么样?
了解业务
▐ 业务和需求
▐ 前端为什么要学习业务
只有了解业务,才能从技术的角度想到业务方不曾想到的地方;不了解业务,你可能听不懂业务方要什么,甚至连需求的业务逻辑都搞不清,这种情况的合作模式只有一种,需求下来了,你接住,然后给排期。也许,这个需求的设计不合理,你不知道;这个需求有更好的实现方案,你不知道;这个需求可以通过现成的关联产品方案解决,省时省人力,你也不知道。
只有了解到业务背后的原因,才能从全局的视角去规划技术的未来。不了解业务,会让你离用户的真实需求很远,你越难发现其中的一些痛点和挑战,没法真正提出你的思考和解决方案,去解决用户的难题。
作为一名产品研发工程师,自然是希望亲手打磨一款解决用户问题、体验友好的产品,如果产品能得到用户认可,产生影响力、自然会特别有成就感。
阿里作为一家商业科技公司,对技术人的要求就是技术与业务相结合,在满足业务需求的基础上,成为技术与业务的桥梁,主动走进业务,思考如何通过技术手段帮助业务做赢、满足市场和用户需求,先一步技术规划、人才储备、技术架构和技术预研。
▐ 你了解业务吗?
业务做的是什么?产品大图有吗?
业务的核心指标是什么?KPI目标是什么,这些数字背后的含义是什么?要达成这些目标,业务策略是什么?
业务的用户是谁?流量怎么分层?占比多少?分别在业务中是怎样的定位?
业务的商业模式?靠什么吸引流量,盈利模式是怎样的?
我们做的页面是什么东西?为业务带来什么价值?要创造更多的价值,我们可以做什么?
▐ 如何学习业务?
业务领域知识的阅读
刚刚接手新的业务,可以邀请业务方老板或者资深的运营/产品同学,给你讲讲这块业务的过去、现在、未来、愿景、财年规划,以及对技术同学的期望;
花时间读合作方(运营、产品、研发)的周报,了解现在在发生什么,是不是离目标越来越近了;
了解业务目标、落地策略、衡量目标的数据口径,关注数据,关注目前做的项目是否为了达成目标而战,如果不是,提出你的想法和建议;
多参会,建立产品 sense。收集信息最好的方式就是参加所处业务老大的 KO 会,各种 KO 会会把战略上的拆解和背后的思考整体梳理之后宣讲传达给 BU 或部门的同学,
多交流
所记的数字指标本身,很大程度已经涵盖了这个业务价值方向,你便知道了这个业务重点关注的是哪个维度的东西
这些数字可以作为和业务方以及产品“平等对话”的源头,否则连最基本的对话基础都没有
提高自己对业务的理解能力,你在关注业务数据的同时,也就会更多的从业务的角度来看到这个功能所带来的价值是否符合预期,当出现不符合预期的时候,可以和业务方一起进行数据漏斗的分析从而找到问题所在,避免我们的劳动成果成为一次性的工作。
总结的同时可以帮助自己梳理这个项目中自己哪些地方做的不足,或者相关推进中存在什么问题,以及后面怎么改进,提高了下次项目中的迭代效率和质量。比如这个项目是否存在需求理解不到位存在返工,或者沟通 & 联调低效,环境不稳定,自己设计的方案是否合理等问题,后续要怎么解决。
也可以从数据和总结中判断出什么样的需求是靠谱的 & 什么的样业务方是靠谱的,频繁争取资源上线效果又不好的业务方,下次再有需求过来则需要多增加一个心眼和思考的过程。
助力业务
▐ 思考
养成每天记工作内容的习惯,分析一下自己的时间到底耗在哪了
在业务开发中,有遇到让你特别想吐槽的点吗?想下问题背后的原因,有什么方法可以避免下次不犯,能不能提炼为更加通用的解决方案,其他同学怎么解决的,我可以怎么解决?
不断地输入、观察,业务的真实需求是什么?站在业务方的角度思考,业务遇到的痛点、挑战在哪里?
▐ 沟通
当前业务背景下,为什么要做?(有什么业务价值?有什么技术价值?)
现在必须做么?
为什么是你做?
怎么做?(体系化、全链路、单点技术挑战)
有什么业务和技术结果?能否被复用?
未来规划(能否跟BU或集团的方案联动、共建)
▐ 技术规划
▐ 站在巨人的肩膀上
技术深度
▐ 技术知识与技术能力
《TypeScript 从入门到放弃》
《React 从入门到放弃》
《Webpack 从入门到放弃》
......
我用 TypeScript 重构了一个大型系统,代码健壮性及研发效率大幅提升。
我用 React Hooks 给全栈同学进行前端培训,培训效果大幅提升。
我深入研究了 Webpack,优化配置,使得系统构建速度大幅提升。
.....
▐ 培养技术视野
关注日常业界新技术。不一定要深入了解,但对新技术保持好奇心,大概了解它是做什么的,如果在工作中遇到匹配的落地环境,可以考虑写个 demo 看看是不是有价值
关注集团和业界的解决方案。在业务中发现问题,做解决方案的时候,我们很容易陷入自己的设计中,一脑子地想把所有东西都自己做出来,但投入会非常大,产出的价值是否一样大呢?不知道。大部分情况下,你想做的,在ATA能搜到,前人踩的坑,或者已有的成熟的解决方案,只要你去沟通去接触,就可以轻松地接进来,为什么要花大量的时间去造轮子呢?可以借力的地方,就去借力吧,把时间剩下来,做你的解决方案中更核心更有价值的事情。
▐ 技术深度
体系化 / 系统化
体系化思维是认识事物的一种方式,在面对问题的时候,能够针对复杂的问题,列出关键的要素和解决方法,将散乱无序的问题,变得逻辑清晰,有章可循。
在问题的定位和解决的体现,从表象到本质,拆解出造成问题背后的原因,针对性地去解决本质的原因,而非治标不治本,有解决方案有节奏地解决。
全链路
除了前端的部分,向前向后的技术栈,还能挖多深。
单点技术挑战
在某个技术挑战上,你的思考和解决方案是怎样的。